package Common;

// 表示了 x86 汇编语言中的常见寄存器。
// 每个枚举常量代表一个寄存器，并关联一个字符串名称和一个整数值。
// name 和 value 两个字段提供了寄存器的名称和值
public enum REG{
    EAX("eax",0),
    EBX("ebx",1),
    ECX("ecx",2),
    EDX("edx",3),
    ESI("esi",4),
    Cnts("cnt",5),
    EDI("edi",6),
    ESP("esp",7),
    EBP("ebp",8),
    EIP("eip",9),
    ;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public String name;
    public int value;

    REG(String s) {
        name = s;
    }

    REG(int v) {value = v;}

    REG(String s, int v) {name = s;value = v;}

    public String toString() {
        return name;
    }

    public static REG getMyReg(int i){
        switch (i) {
            case 0:return REG.EAX;
            case 1:return REG.EBX;
            case 2:return REG.ECX;
            case 3:return REG.EDX;
            case 4:return REG.ESI;
            case 5:return REG.Cnts;
            case 6:return REG.EDI;
            case 7:return REG.ESP;
            case 8:return REG.EBP;
            case 9:return REG.EIP;
        }
        return null;
    }
}
